<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 不知道你有多少个实参,但是你传多少我接多少
        function test1(){
            // console.log(arguments);
            // arguments是一个大箱子 
            // 箱子中的数据是按照编号依次排列的
            // 编号从0开始 
            //对于复杂数据类型打印 用console.log()
            // alert document.write 仅仅输出[object ***]

            // alert(arguments[6]);
            // alert(arguments.length);
            // var sums = 0;
            // for(var i=0;i<arguments.length;i++){
            //     // console.log(i)
            //     sums += arguments[i];
            // }

            // return sums;
            console.log(arguments)
        }

        // console.log
        // console.log(test1(10,290,30,40,50,200,100,234));
        // //     0   1  2  3  4  5   6   7 
        // console.log(test1(10,290,30,40,50,200,100,234,42,890));
        // //     0   1  2  3  4  5   6   7  8   9

        // test1(10,290,30,40,50,200,100,234)



        //递归函数 自己调用自己 
        // 如果函数改名 里边调用自己的名字也得跟着改
        // 如果里边忘了改报错  
        // 为了防止外边改带来的错误 
        // 再调用自己的时候用 arguments.callee代替 

        function jiecheng666(num){
            if(num==1) return 1;
            return num*arguments.callee(num-1);
        }

        // console.log(jiecheng666(10));

        // 传入一个数字 比如10 
        // 输出!1+2!+3!+...!10

        function sum_jiecheng(num){
            if(num==1) return 1;
            var sum = 1;
            for(var i=num;i>1;i--){
                // console.log(i);// 10....2
                sum+=jiecheng666(i);
            }
            return sum;
        }

    </script>
</body>
</html>